// 获取应用实例
const app = getApp()
let animation = wx.createAnimation();
let innerAudioContext = wx.createInnerAudioContext();
const ctx = wx.createCameraContext();
let fs = wx.getFileSystemManager();
let myInterval;
innerAudioContext.src = "/assets/ding.mp3";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    scanEnable: true, // 是否可以扫码二维码
    scanning: true, // 扫码中
    img: '/assets/box.png', // 当前图片
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const _this = this;
    _this.donghua();
    myInterval = setInterval(function () { _this.takePhoto() }, 1000);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  stop() {
    console.log("进入后台");
  },

  done(e) {
    console.log("初始化完成", e);
  },

  donghua() {
    var that = this;
    // 控制向上还是向下移动
    let m = true

    setInterval(function () {
      if (m) {
        animation.translateY(50).step({ duration: 3000 })
        m = !m;
      } else {
        animation.translateY(-50).step({ duration: 3000 })
        m = !m;
      }

      that.setData({
        animation: animation.export()
      })
    }.bind(this), 1000)
  },

  takePhoto() {
    const t = this;
    // 抓取人像
    ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        // 获取文件类型
        fs.readFile({
          filePath: res.tempImagePath,
          encoding: 'base64',
          success(res) {
            console.log(res);
            const src = `data:image/jpeg;base64,${res.data}`;
            t.setData({
              img: src
            })
            t.faceCompare(src)
          },
          fail(res) {
            console.error(res)
          }
        })
      }
    })
  },


  // 人脸识别
  faceCompare(image) {
    wx.request({
      url: 'http://192.168.8.157:50009/compare',
      method: 'POST',
      data: {
        image,
        cmpImage: 'http://192.168.8.157:8031/images/thumbs/0009631_200.jpg', // 比对图片
      },
      header: {
        'Content-Type': 'application/json; charset=UTF-8'
      },
      success(request) {
        console.log(request)
        const { data: { data: { result, similar } } } = request;
        if (0 == result) {
          console.log('无人脸数据!')
          // 重新拍照
        } else if (1 == result) {
          console.log('多张人脸!')
          // 重新拍照
        } else if (2 == result) {
          console.log('非活体!')
          // 重新拍照
        } else if (3 == result) {
          console.log(similar)
          // 停止拍照
          if (similar > 0.7) {
            console.log("是本人！")

            clearInterval(myInterval);
            // 返回打卡界面
          } else {
            //console.log("不是本人！")
            // 返回打卡界面
          }
        } else {
          console.log('未发现人脸!')
          // 重新拍照
        }
      },
      fail(error) {
        console.log(error.data)
      }
    })
  }

})